package com.xique.door.biz.service;


import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.api.request.build.RemoteBuildingListRequest;
import com.xique.door.bean.domain.AccessDevice;
import com.xique.door.bean.domain.BuildBuilding;
import com.xique.door.bean.request.AccessDevice.AccessDeviceListRequest;
import com.xique.door.bean.request.buildBuildng.BuildBuildingAddRequest;
import com.xique.door.bean.request.buildBuildng.BuildBuildingDeleteRequest;
import com.xique.door.bean.request.buildBuildng.BuildBuildingEditRequest;
import com.xique.door.bean.request.buildBuildng.BuildBuildingListRequest;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author shd
 * @create 2021/9/10 15:00
 */
public interface IBuildBuildingBizService {

    /**
     * 楼栋添加
     * @author shd
     * @date 2021/9/10 15:01
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult batchAddBuilding(BuildBuildingAddRequest request);

    /**
     * 楼栋编辑
     * @author shd
     * @date 2021/9/13 11:59
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult buildingEdit(BuildBuildingEditRequest request);

    /**
     * 楼栋删除
     * @author shd
     * @date 2021/9/13 12:01
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult buildingDelete(BuildBuildingDeleteRequest request);

    BuildBuilding selectBuildBuildingById(Long id);

    AjaxResult addBuilding(BuildBuildingAddRequest request);

    List<AccessDeviceListRequest> selectBuildingDevices(Long id);

    AjaxResult delBuildingDevices(List<Long> ids);

    AjaxResult addBuildingDevices( List<Long> ids,Long buildBuildingId);

    AjaxResult getBuildingDevices( Long buildingId);

    /**
     * 查询楼栋列表
     * @author shd
     * @date 2022/3/8 11:37
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult selectBuildingList(RemoteBuildingListRequest request);

    /**
     * 获取楼栋列表
     * @author shd
     * @date 2022/6/14 17:28
     * @param request
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult getBuildingList(BuildBuildingListRequest request);
}
